Collection was modified; enumeration operation may not execute.

Collection was modified; enumeration operation may not execute.


اگر در حلقه foreach بخواهیم با متدهای Add یا Remove و با اشاره به خود آیتم ها، تغییری در آیتم ها ایجاد کنیم خطای زیر روی می دهد:

در این حالت می توانیم یک کپی از آیتم ها بگیریم و با استفاده از آنها کارمان را انجام دهیم. مثلا برای حذف آیتم های انتخاب شده:
foreach (ListItem liItems in lstInformationItems.Items)
{
    if (liItems.Selected == true)
    {
        lstSelectedCities.Add(liItems);
    }
}

foreach (ListItem liSelected in lstSelectedCities)
{
    lstInformationItems.Items.Remove(liSelected);
}
سید حامد واحدی سید حامد واحدی     27 مهر 1393